package com.example.shop_2208.utils

import android.content.Context
import android.widget.ImageView
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.resource.bitmap.CenterCrop
import com.bumptech.glide.load.resource.bitmap.CircleCrop
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.example.shop_2208.R

/**
 * 图片工具类
 */
object GlideUtils {
    /**
     * context: Context:可以避免内存泄露
     */
    fun loadImage(context: Context,imageView: ImageView,url:String){
        Glide.with(context)
            .load(url)
            .error(R.drawable.ic_launcher_background)//图片网址错误时，会显示默认机器人图标
            .placeholder(R.drawable.ic_car)//占位符  ，当图片还未加载出来时显示， 图片加载出来后，显示正确图片
            .skipMemoryCache(true)//是否跳过缓存
            .diskCacheStrategy(DiskCacheStrategy.ALL)//缓存策略、、提高加载图片的速度
            .thumbnail(0.1f)//缩略图
            .centerCrop()//居中显示
            .into(imageView)
    }

    /**
     * 圆形图片
     */
    fun loadCircleImage(context: Context,imageView: ImageView,url:String){
        Glide.with(context)
            .load(url)
            .error(R.drawable.ic_launcher_background)//图片网址错误时，会显示默认机器人图标
            .placeholder(R.drawable.ic_car)//占位符  ，当图片还未加载出来时显示， 图片加载出来后，显示正确图片
            .skipMemoryCache(true)//是否跳过缓存
            .diskCacheStrategy(DiskCacheStrategy.ALL)//缓存策略、、提高加载图片的速度
            .thumbnail(0.1f)//缩略图
            .transform(CenterCrop(),CircleCrop())
            .into(imageView)
    }

    /**
     * 圆角图片
     */
    fun loadCornerImage(context: Context,imageView: ImageView,url:String,raduis:Int){
        Glide.with(context)
            .load(url)
            .error(R.drawable.ic_launcher_background)//图片网址错误时，会显示默认机器人图标
            .placeholder(R.drawable.ic_car)//占位符  ，当图片还未加载出来时显示， 图片加载出来后，显示正确图片
            .skipMemoryCache(true)//是否跳过缓存
            .diskCacheStrategy(DiskCacheStrategy.ALL)//缓存策略、、提高加载图片的速度
            .thumbnail(0.1f)//缩略图
            .transform(CenterCrop(),RoundedCorners(raduis))
            .into(imageView)
    }
}